package cn.tedu.collection;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/*测试泛型优点*/
public class TestGeneric2 {
    public static void main(String[] args) {
        Integer[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        print(a);
        String[] b = {"大哥", "二哥", "三哥", "四哥", "五哥", "六哥", "小弟"};
        print(b);
        Double[] c = {6.0, 6.6, 6.66, 6.666, 6.6666};
        print(c);
        List<String> e = new ArrayList<>();
        e.add("1");
    }
/*泛型可以实现统一代码的编写,使用E表示元素的类型是Element类型
* 2.泛型的语法要求
* 如果在方法上使用泛型,必须两处同时出现,一个是传入参数的类型
* 一个是返回值的泛型类型,表示这是一个泛型方法*/
    /*public interface Collection<E>{
    Iterator<Integer> it=e.iterator();
        while (it.hasNext()){
        System.out.println(it.next());
    }*/

    private static <E> void print(E[] e) {



        /*for(int i=1;i<e.length;i++){
            System.out.println(e[i]);
        }*/

        /*for(E aa:e){
            System.out.println(aa);
        }*/


        /*for (E aaa : e) {
           System.out.println(aaa);
       }*/


//    private static void print(Integer[] n){
//        for (int i=1;i<n.length;i++){
//            System.out.println(n[i]);
//        }
//        /*高效for循环/foreach循环
//        * 好处:比普通for循环写法简单,而且效率还高
//        * 坏处:没有办法按照下标来操作值,只能从头到尾依次遍历
//        * 语法:for(2  3:1){循环体}
//        * 1号是要遍历的内容,2  3是每轮遍历到的具体元素的类型与名字*/
//        for(Integer aaa:n){
//            System.out.println(aaa);
//        }
//    }
//    private static void print(String[] b){
//        for(String sss:b){
//            System.out.println(sss);
//        }
//    }
//    private static void print(Double[] c){
//        for(Double sss:c){
//            System.out.println(sss);
//        }
//    }
    }
    @Test
    public void eat(){
        ArrayList<String> e = new ArrayList<>();
        e.add("1");
        e.add("1");
        e.add("1");
        Iterator<String> iterator = e.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}
